<?php
namespace app\api\controller;
use think\facade\Db;
use think\facade\Request;

use app\model\ShopLists;

// class名字和文件名，要一致
// 一个文件，规定一个class
class Index
{
    // http://www.tp.com/index.php/Index/index
    // 找到一个方法， 域名 + 入口文件 + 文件名(类名) + 方法名
    public function index()
    {
        // -------------------2022年5月9日----------------------------
        // 1、访问tp页面
        // $arr = [
        //     'ouyangke' => '欧阳克'
        // ];
        // print_r($arr);
        // echo '欧阳克';

        // 2、原生mysql
        // $ret = Db::query("SELECT * FROM `oyk_shop_lists`");
        // print_r($ret);
        // if(!empty($ret)){
        //     foreach($ret as $v){
        //         echo $v['title'];
        //         echo '<br>';
        //     }
        // }
        
        // 3、原生mysql，添加和修改
        // $ret = Db::execute("UPDATE `oyk_shop_lists` SET `status` = 0 WHERE `id` = 15;");
        // print_r($ret);

        // 4、select 查询全部，tp查询方式
        // $ret = Db::table('oyk_shop_lists')->select();
        // if(!empty($ret)){
        //     foreach($ret as $v){
        //         echo $v['title'];
        //         echo '<br>';
        //     }
        // }
        // print_r($ret);

        // 5、find 查询单条数据，要增加条件
        // $ret = Db::table('oyk_shop_lists')->find(1);
        // print_r($ret);

        // 6、value 查询单个数据
        // $ret = Db::table('oyk_shop_lists')->value("title");
        // print_r($ret);

        // 7、where条件
        // $ret = Db::table('oyk_shop_lists')->where('id',10)->value("title");
        // print_r($ret);

        // 8、column 查询一列
        // $ret = Db::table('oyk_shop_lists')->column("title");
        // print_r($ret);
        // $ret = Db::table('oyk_shop_lists')->column("title","id");
        // print_r($ret);

        // 9、insert 插入
        // $arr = [
        //     'pid' => 1,
        //     'cid' => 2,
        //     'title' => '欧阳克直播课',
        //     'img' => '',
        //     'price' => 588,
        //     'num' => 0,
        //     'info' => '',
        //     'status' => 1,
        //     'add_time' => 0,
        // ];
        // $ret = Db::table('oyk_shop_lists')->insert($arr);
        // print_r($ret);

        // 10、insertGetId
        // $arr = [
        //     'pid' => 1,
        //     'cid' => 2,
        //     'title' => '欧阳克直播课',
        //     'img' => '',
        //     'price' => 588,
        //     'num' => 0,
        //     'info' => '',
        //     'status' => 1,
        //     'add_time' => 0,
        // ];
        // $ret = Db::table('oyk_shop_lists')->insertGetId($arr);
        // print_r($ret);

        // 11、insertAll
        // $arr = [
        //     [
        //         'pid' => 1,
        //         'cid' => 2,
        //         'title' => '欧阳克直播课',
        //         'img' => '',
        //         'price' => 588,
        //         'num' => 0,
        //         'info' => '',
        //         'status' => 1,
        //         'add_time' => 0,
        //     ],
        //     [
        //         'pid' => 1,
        //         'cid' => 2,
        //         'title' => '欧阳克直播课',
        //         'img' => '',
        //         'price' => 588,
        //         'num' => 0,
        //         'info' => '',
        //         'status' => 1,
        //         'add_time' => 0,
        //     ],
        //     [
        //         'pid' => 1,
        //         'cid' => 2,
        //         'title' => '欧阳克直播课',
        //         'img' => '',
        //         'price' => 588,
        //         'num' => 0,
        //         'info' => '',
        //         'status' => 1,
        //         'add_time' => 0,
        //     ]
        // ];
        // $ret = Db::table('oyk_shop_lists')->insertAll($arr);
        // print_r($ret);

        // 12、update 修改
        // $ret = Db::table('oyk_shop_lists')->where('id',20)->update([
        //     'title' => '朱老师直播课'
        // ]);
        // print_r($ret);

        // 13、inc 自增
        // $ret = Db::table('oyk_shop_lists')->where('id',20)->inc('num')->update();
        // $ret = Db::table('oyk_shop_lists')->where('id',20)->inc('num',10)->update();
        // print_r($ret);

        // 14、dec 自减
        // $ret = Db::table('oyk_shop_lists')->where('id',20)->dec('num')->update();
        // print_r($ret);

        // 15、detele 删除
        // $ret = Db::table('oyk_shop_lists')->delete(19);
        // print_r($ret);

        
        // 16、useSoftDelete 软删除
        // $ret = Db::table('oyk_shop_lists')->useSoftDelete('status',2)->delete(20);
        // print_r($ret);

        // 17、WHERE 查询方法
        // $ret = Db::table('oyk_shop_lists')->where('id',20)->find();
        // $ret = Db::table('oyk_shop_lists')->where('id','=',20)->find();
        // $ret = Db::table('oyk_shop_lists')->where('id','<',5)->select();
        // $ret = Db::table('oyk_shop_lists')->where('id','>',15)->select();
        // $ret = Db::table('oyk_shop_lists')->where('id','>=',15)->select();
        // $ret = Db::table('oyk_shop_lists')->where('id','<=',5)->select();
        // $ret = Db::table('oyk_shop_lists')->where('title','like','%直播课%')->select();
        // $ret = Db::table('oyk_shop_lists')->whereLike('title','%直播课%')->select();
        // $ret = Db::table('oyk_shop_lists')->where('title','not like','%直播课%')->select();
        // $ret = Db::table('oyk_shop_lists')->where('title','not like','%直播课%')->select();
        
        // 18、name 表名，去掉表前缀
        // $ret = Db::name('shop_lists')->select();

        // 19、field 字段返回值
        // $ret = Db::name('shop_lists')->field('title')->select();
        // $ret = Db::name('shop_lists')->field(['title','img'])->select();
        // print_r($ret);

        // 20、order 排序
        // $ret = Db::name('shop_lists')->order('id DESC')->select();
        // print_r($ret);

        // 21、limit 查询条数
        // $ret = Db::name('shop_lists')->order('id DESC')->limit(2,2)->select();
        // print_r($ret);

        // 22、page 翻页，更方便
        // $ret = Db::name('shop_lists')->order('id DESC')->page(3,3)->select();
        // print_r($ret);

        // 24、getLastSql 先执行mysql语句，在返回原生的mysql语句
        // $ret = Db::name('shop_lists')->field(['title','img'])->where('id','>',5)->order('id DESC')->page(1,3)->select();
        // print_r($ret);
        // echo Db::getLastSql();

        // 25、fetchSql 返回原生的mysql语句
        // $ret = Db::name('shop_lists')->field(['title','img'])->where('id','>',5)->order('id DESC')->page(1,3)->fetchSql()->select();
        // echo $ret;
        
        // 文档：www.ouyangke.com
        // 19期项目展示：http://19.ouyangke.com/#/

        // 后台管理系统2：
        // 演示站：http://admin-thinkphp-antd-vue-learning.ouyangke.com
        // 码云：https://gitee.com/ouyangke_com/admin-thinkphp-antd-vue-learning

        // thinkphp官网：https://www.thinkphp.cn/


        // 1、thinkphp搭建起来
        // 2、课程代码，练习一遍

        // ----------------------2022年5月10日
        // 1、count 统计数据表中的数量
        // $count = Db::table('oyk_shop_lists')->count();
        // 向上取整
        // echo ceil($count / 10);
        // echo $count;
        // 2、sum 统计数量
        // $sum = Db::table('oyk_shop_lists')->sum('num');
        // echo $sum;

        // 3、where 条件 AND OR
        // 还可以使用数组的方式，进行查询

        // 条件比较多，用需要用到判断，判断这个条件是否存在
        
        // $where[] = ['status','=',1];

        // $price  = 1000;
        // if(!empty($price)){
        //     $where[] = ['price','>=',$price];
        // }

        // $num = 10;
        // if(!empty($num)){
        //     $where[] = ['num','>=',$num];
        // }

        // $lists = Db::table('oyk_shop_lists')->where($where)
        //                                     ->order('price DESC')
        //                                     ->select();
        // echo Db::getLastSql();
        // // SELECT * FROM `oyk_shop_lists` WHERE `status` = 1 AND `price` >= 1000 AND `num` >= 10 ORDER BY `price` DESC
        // print_r($lists);

        // $lists = Db::table('oyk_shop_lists')
        // if(!empty($price)){
        //     ->where('price','>=',1000);
        // }
        //                                     ->whereOr('num','>=',1)
        //                                     ->order('price DESC')
        //                                     ->select();
        // print_r($lists);


        // 4、事务：数据库 进行回滚
        // $arr = [
        //     'pid' => 1,
        //     'cid' => 2,
        //     'title' => '欧阳克直播课',
        //     'img' => '',
        //     'price' => 588,
        //     'num' => 0,
        //     'info' => '',
        //     'status' => 1,
        //     'add_time' => 0,
        // ];
        // // 数据库事务开始;
        // Db::startTrans();
        // $ret = Db::table('oyk_shop_lists')->insert($arr);

        // if(empty($ret)){
        //     // 事务回滚
        //     Db::rollback();
        // }

        // $cat = Db::table('oyk_shop_cat')->insert([
        //     'pid' => 21,
        //     'name' => 'ouyang',
        //     'pic' => '',
        //     'sort' => 0,
        //     'status' => 1
        // ]);

        // if(empty($cat)){
        //     // 事务回滚
        //     Db::rollback();
        // }
        // // 事务提交
        // Db::commit();
        
        // 5、对数据集进行处理
        // $ret = Db::table('oyk_shop_cat')->where('status',1)->select();
        // // 是数据库里的功能
        // if($ret->isEmpty()){
        //     echo '未找到数据';
        // }
        // print_r($ret->toArray());

        // 6、请求数据，get
        // print_r($_GET);
        // print_r(Request::get());
        // print_r(Request::get('id'));
        // param 获取get和post的参数
        // print_r( Request::param() );
        // print_r( Request::post() );

        
        // 模拟商城查询的方式
        // if(Request::method() == 'POST'){
        //     $where[] = ['status','=',1];

        //     // $price_min  = Request::post('price_min',0);
        //     $price_min  = Request::post('price_min/d',0);
        //     // echo $price_min;
        //     if(!empty($price_min)){
        //         $where[] = ['price','>=',$price_min];
        //     }
        //     $price_max  = Request::post('price_max',0);
        //     if(!empty($price_max)){
        //         $where[] = ['price','<=',$price_max];
        //     }

        //     $num = Request::post('num',0);
        //     if(!empty($num)){
        //         $where[] = ['num','>=',$num];
        //     }

        //     $lists = Db::table('oyk_shop_lists')->where($where)
        //                                         ->order('price DESC')
        //                                         ->select();

        //                                         print_r($lists);
        // }

        // 请求软件： Postman、ApiPost

        // echo Request::host();
        // echo Request::scheme();
        // echo Request::port();
        // echo Request::time();
        // echo date('Y-m-d H:i:s',Request::time());
        // echo Request::controller();
        // echo '<br>';
        // echo Request::action();


        // 7、调用model
        // $db = new ShopLists();

        // $lists = $db->get_data();
        // $lists = $db->set_data();
        // $lists = $db->search_data();

        // if(!empty($lists)){
        //     foreach($lists as &$v){
        //         if($v['status'] == 1){
        //             $v['status_name'] = '开启';
        //         }else{
        //             $v['status_name'] = '关闭';
        //         }
        //     }
        // }
        // print_r($lists);
        // dump($lists);


        
        // print_r(Request::get());
        // print_r( Request::param() );
        // print_r( Request::post() );

        // print_r(input('post.num'));

        return '<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:) </h1><p> ThinkPHP V' . \think\facade\App::version() . '<br/><span style="font-size:30px;">14载初心不改 - 你值得信赖的PHP框架</span></p><span style="font-size:25px;">[ V6.0 版本由 <a href="https://www.yisu.com/" target="yisu">亿速云</a> 独家赞助发布 ]</span></div><script type="text/javascript" src="https://tajs.qq.com/stats?sId=64890268" charset="UTF-8"></script><script type="text/javascript" src="https://e.topthink.com/Public/static/client.js"></script><think id="ee9b1aa918103c4fc"></think>';
    }
    public function a(){
        echo Request::controller();
        echo '<br>';
        echo Request::action();
        // echo '这是a方法';
    }
    public function b(){
        echo '这是b方法';
    }
}